package Servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.UUID;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import utilidades.Escritor;
import utilidades.HtmlGen;

import Inscripcion.Participante;
import Inscripcion.Usuario;

@WebServlet("/Registro")
public class Registro extends Principal{
	private static final long serialVersionUID = 1L;
	private ServletContext sc;

	public Registro() {
		super();
	}   	
	
	public void init(ServletConfig config) throws ServletException{
		
		super.init(config);
		sc = getServletContext();
		
    }
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}  	
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			
		//Capturamos los parámetros 
		String nombre = request.getParameter("nombre");
		String apellido1 = request.getParameter("apellido1");
		String apellido2 = request.getParameter("apellido2");
		String correo = request.getParameter("mail");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String password2 = request.getParameter("password2");
		String sexo = request.getParameter("sexo");
			
		try{
			Usuario p = Escritor.buscarUsuario(sc,username);
			PrintWriter out;
			out = response.getWriter();
			   
			response.setContentType("text/html");
			  	
			out.println("<html>");
			out.println("<head><title>Información registro</title></head>");
			
			String urlEstilo = request.getContextPath() + "/css/cv.css"; 
			out.println("<link rel=\"stylesheet\" href=" + urlEstilo + ">");
			out.println("<meta http-equiv=\"content-type\" lang=\"es\" " +
					"content=\"text/html; charset=utf-8\"/>");

			out.println("</head>");
			
			out.println("<body>");
			
			
			//ESTILO JOSE
			HtmlGen.escribeCabecera(out);
					
			/*if (password != password2){
				out.println("<div id=\"contenedor\">");
					out.println("<div id=\"Inscripcion\" class=\"apartado_cv\">");
					out.println("<h1>Registro incorrecto: Las contraseñas no coinciden</h1>");
					
					out.println("<a href='index.html'>Volver al inicio</a> | <a href=\"http://localhost/Practica4Pawii/UserRegistrados\">Usuarios Registrados</a>");
					
					out.println("</div>");
				out.println("</div>");
					
				out.println("</body></html>");
			}
			
				
			else{	*/
			out.println("<div id=\"contenedor\">");
			
				out.println("<div id=\"Inscripcion\" class=\"apartado_cv\">");
			
				if (p == null && password.equals(password2)){
				out.println("<h2>Se ha registrado correctamente</h2>");
				out.println("<p>");
				out.println("<img id=\"foto\" class=\"correcto\" src=/Practica4Pawii/css/loginCorrecto.png alt=\"login correcto\" >");
				out.println("</p>");
				out.println("Nombre: <strong>" + nombre + "</strong><br>");
				out.println("Primer apellido: <strong>" + apellido1 + "</strong><br>");
				out.println("Segundo apellido: <strong>" + apellido2 + "</strong><br>");
				out.println("Correo electrónico: <strong>" + correo + "</strong><br>");
				out.println("Username: <strong>" + username + "</strong><br>");
				out.println("Password: <strong>" + password + "</strong><br>");
				
				out.println("Sexo: <strong>" + sexo + "</strong><br>");
				
				UUID id2 = UUID.randomUUID();
				
				System.out.println("id:" + id2);
				
				Usuario user = new Usuario(nombre,apellido1,apellido2, correo, username, password,sexo, id2.toString());
				
				
				// Validar datos de entrada 
				
				HashMap<String,Usuario> aRegistrados = Escritor.getRegistrados(sc);
				
				if(!aRegistrados.containsKey(id2)){
					Escritor.addRegistrado(sc, user );
					System.out.println("Inscrito con exito :" + user.getId());
				}
				else{
					System.out.println("No se pudo realizar la inscripción de :" + user.getId());
				}
				
				out.println("<hr>");
				//out.println("<a href='index.html'>Volver al inicio</a> | <a href=\"http://localhost/Practica4Pawii/UserRegistrados\">Usuarios Registrados</a>");
				out.println("<a href='index.html'>Volver al inicio</a>");
				
				//Ya existe el Usuario
				}
				else{
					out.println("<h1>No se ha podido registrar ( Username ya existe, o contraseñas no coinciden )</h1>");
					
					out.println("<p>");
					
					out.println("<img id=\"foto\" class=\"incorrecto\" src=/Practica4Pawii/css/loginIncorrecto.png alt=\"login correcto\" >");
					out.println("</p>");
					out.println("<hr>");
					out.println("<a href='index.html'>Volver al inicio</a>");
				
				}
				
				
				out.println("</div>");
				out.println("</div>");
					
				out.println("</body></html>");
				
				
			
			}
		catch (Exception e){
			response.setHeader("Cache-Control", "no-cache, no-store");
			response.setHeader("Pragma", "no-cache"); 
						 
			response.sendRedirect(request.getContextPath() + "/ErrorPages/unknow.html");
		}
	}   	


}

